/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package xmlaufgabe4;

/**
 * Enthaelt gemeinsame Daten fuer alle darzustellenden Produkte.
 * 
 * @author Adrian Cieluch
 */
public abstract class DataElement {
    /**
     * Speichert den Titel.
     */
    protected String title;
    /**
     * Speichert die EAN.
     */
    protected String ean;
    /**
     * Speichert das Veroeffentlichungsdatum.
     */
    protected String published;
    /**
     * Speichert die Anzahl der leeren Attribute.
     */
    protected int empty;

    /**
     * Initialisiert alle Attribute.
     */
    public DataElement() {
        title = "";
        ean = "";
        published = "";
        empty = 0;
    }
    
    /**
     * Ermittelt die Anzahl der leeren Attribute und gibt diese zurueck.
     * 
     * @return Anzahl der leeren Attribute
     */
    public abstract int getEmptySlotCount();
    
    /**
     * Gibt den Titel zurueck.
     * 
     * @return the title
     */
    public String getTitle() {
        return title;
    }

    /**
     * Setzt den Titel.
     * 
     * @param title der zu setzende Titel
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * Gibt die EAN zurueck.
     * 
     * @return die EAN
     */
    public String getEan() {
        return ean;
    }

    /**
     * Setzt die EAN.
     * 
     * @param ean die zu setzende EAN
     */
    public void setEan(String ean) {
        this.ean = ean;
    }

    /**
     * Gibt das Veroeffentlichungsdatum zurueck.
     * 
     * @return das Veroeffentlichungsdatum
     */
    public String getPublished() {
        return published;
    }

    /**
     * Setzt das Veroeffentlichungsdatum.
     * 
     * @param published das zu setzende Veroeffentlichungsdatum
     */
    public void setPublished(String published) {
        this.published = published;
    }

    /**
     * Gibt die Anzahl der leeren Attribute zurueck.
     * 
     * @return Anzahl der leeren Attribute
     */
    protected void findEmptySlots() {
        if(title.isEmpty())
            empty++;
        
        if(ean.isEmpty())
            empty++;
        
        if(published.isEmpty())
            empty++;
    }
}
